class Regexps {
  /// 纯数字
  static const String DIGIT_REGEX = '[0-9]+';

  /// 含有数字
  static const String CONTAIN_DIGIT_REGEX = '.*[0-9].*';

  /// 纯字母
  static const String LETTER_REGEX = '[a-zA-Z]+';

  /// 包含字母
  static const String SMALL_CONTAIN_LETTER_REGEX = '.*[a-z].*';

  /// 包含字母
  static const String BIG_CONTAIN_LETTER_REGEX = '.*[A-Z].*';

  /// 包含字母
  static const String CONTAIN_LETTER_REGEX = '.*[a-zA-Z].*';

  /// 纯中文
  static const String CHINESE_REGEX = '[\u4e00-\u9fa5]';

  /// 邮箱
  static const String EMAIL =
      '^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}\$';

  /// 手机号
  static const String MOBILE =
      '^((13[0-9])|(15[^4])|(166)|(17[0-8])|(18[0-9])|(19[8-9])|(147,145))\\d{8}\$';

  /// 纯数字
  static bool isOnly(String input) {
    if (input.isEmpty) {
      return false;
    }

    return new RegExp(DIGIT_REGEX).hasMatch(input);
  }

  /// 含有数字
  static bool hasDigit(String input) {
    if (input.isEmpty) {
      return false;
    }

    return new RegExp(CONTAIN_DIGIT_REGEX).hasMatch(input);
  }

  /// 是否包含中文
  static bool isChinese(String input) {
    if (input.isEmpty) {
      return false;
    }

    return new RegExp(CHINESE_REGEX).hasMatch(input);
  }

  /// 邮箱判断
  static bool isEmail(String input) {
    if (input.isEmpty) {
      return false;
    }

    return new RegExp(EMAIL).hasMatch(input);
  }

  /// 手机号判断
  static bool isMobile(String input) {
    if (input.isEmpty) {
      return false;
    }

    return new RegExp(MOBILE).hasMatch(input);
  }
}
